package com.smasher.update.component.download

import android.net.Uri
import com.smasher.update.component.parse.ParseDelegate

interface DownloadDelegate {
    /**
     * 开始下载
     */
    fun startDownload(parseDelegate: ParseDelegate): Long

    /**
     * 添加下载完成监听器
     */
    fun addDownloadFinishListener(
        listener: DownloadFinishListener
    )

    /**
     * 获取下载地址
     */
    fun getDownloadUriById(id: Long): Uri?

    /**
     * 获取下载是否完成状态
     */
    fun queryFinishedById(id: Long): Boolean

    /**
     * 释放资源
     */
    fun release()
}
